package com.elai.baseconfig.mapper;

import java.util.List;

import com.elai.baseconfig.domain.EventTypeDO;
import org.apache.ibatis.annotations.Mapper;
import com.elai.baseconfig.domain.EventItemDO;
import org.apache.ibatis.annotations.Param;

/**
 * 事件项目Mapper接口
 *
 * @author elai
 * @date 2021-04-03
 */
@Mapper
public interface EventItemMapper
{
    /**
     * 查询事件项目
     *
     * @param id 事件项目ID
     * @return 事件项目
     */
    EventItemDO selectEventItemById(Long id);

    /**
     * 查询事件项目列表
     *
     * @param eventItem 事件项目
     * @return 事件项目集合
     */
    List<EventItemDO> selectEventItemList(EventItemDO eventItem);

    /**
     * 新增事件项目
     *
     * @param eventItem 事件项目
     * @return 结果
     */
    int insertEventItem(EventItemDO eventItem);

    /**
     * 修改事件项目
     *
     * @param eventItem 事件项目
     * @return 结果
     */
    int updateEventItem(EventItemDO eventItem);

    /**
     * 删除事件项目
     *
     * @param id 事件项目ID
     * @return 结果
     */
    int deleteEventItemById(Long id);

    /**
     * 批量删除事件项目
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteEventItemByIds(Long[] ids);

    List<EventItemDO> selectEventItemsGroup(EventItemDO eventItem);

    int deleteEventItemByEventIds(List<EventTypeDO> typeDOList);

    List<EventItemDO> selectEventItemByType(EventItemDO eventItem);

    void deleteEventItemByAppCode(@Param("appCode") String appCode);

    void deleteEventItemByLesseeId(@Param("lesseeId") String lesseeId);
}
